package guoanmaker.provider.business.service;

import java.util.List;
import java.util.Map;

import guoanmaker.provider.business.model.OperatorServerClass;
import guoanmaker.provider.business.model.ProvideCommodity;
import guoanmaker.provider.business.model.ProvideRoom;
import guoanmaker.provider.business.modelnobind.ProvideCommodityMove;
import guoanmaker.provider.business.modelnobind.ProvideRoomMove;

public interface ProvideCommodityMoveServiceInterface {
	/**
	* @Title: selectProvideCommodityMoves 
	* @Description: 分页查询普通商品列表
	* @param  page 当前页
	* @param  size 显示条数
	* @param  service_type_id(类型)
	* @param  code 当前城市code
	* @param  regionStart 地区商品查询起始
	* @param  countrywideStart 全国商品查询起始
	* @param reorderType排序条件 0:默认查询 1:评价得分高低排序 2:点击量由高到低排序 3:按照商品价格由低到高排序 4:按照商品价格由高到低排序 5:按照商品销量由高到低排序
	* @param serverClass经营范围
	* @return Map<String,Object>    返回类型 
	* @throws 
	 */
	public Map<String, Object> selectProvideCommodityMoves(Integer page, Integer size,String service_type_id,String code,Integer regionStart,Integer countrywideStart,Integer reorderType,OperatorServerClass serverClass);
	
	
	/**
	* @Title: selectProvideCommodityRoomMoves 
	* @Description: 分页查询空间商品列表
	* @param  page 当前页
	* @param  size 显示条数
	* @param  service_type_id(类型)
	* @param  code 当前城市code
	* @param  regionStart 地区商品查询起始
	* @param  countrywideStart 全国商品查询起始
	* @param reorderType排序条件 0:默认查询 1:评价得分高低排序 2:点击量由高到低排序 3:按照商品价格由低到高排序 4:按照商品价格由高到低排序 5:按照商品销量由高到低排序
	* @param serverClass经营范围
	* @return Map<String,Object>    返回类型 
	* @throws 
	 */
	public Map<String, Object> selectProvideCommodityRoomMoves(Integer page, Integer size,String service_type_id,String code,Integer regionStart,Integer countrywideStart,Integer reorderType,OperatorServerClass serverClass);

	/***
	* @Title: selectById 
	* @Description: 通过商品主键查询商品
	* @param id
	* @param cityCode 地级市code
	* @param userId 用户id
	* @param secckillId 秒杀规则id
	* @return ProvideCommodity    返回类型 
	* @throws 
	 */
	ProvideCommodityMove selectById(String id,String cityCode,String userId,String secckillId);
	
	/***
	* @Title: countCommditysClickRate 
	* @Description: 统计商品的点击量
	* @param  id    商品主键
	* @return void    返回类型 
	* @throws 
	 */
	public void countCommditysClickRate(String id);
	
	/***
	* @Title: selectProvideRoom 
	* @Description: 通过城市code获取空间列表
	* @param cityCode    城市标识 
	* @param page 当前页数
	* @param size 每页条数
	* @return List<ProvideRoomMove>    返回类型 
	* @throws 
	 */
	public List<ProvideRoomMove> selectProvideRoom(String cityCode,Integer page, Integer size);
	
	/***
	* @Title: selectByRoomId 
	* @Description: 通过空间主键获取空间下面的商品
	* @param  roomId
	* @return List<ProvideCommodityMove>    返回类型 
	* @throws 
	 */
	public Map<String,Object> selectByRoomId(String roomId);
	
	/***
	* @Title: selectByRoomCode 
	* @Description: 通过空间code获取空间下面的商品
	* @param  roomId
	* @return List<ProvideCommodityMove>    返回类型 
	* @throws 
	 */
	public Map<String,Object> selectByRoomCode(String roomCode);
	
	
	/***
	* @Title: selectByCommodityCode 
	* @Description: 通过商品code查询商品
	* @param commodityCode
	* @param cityCode 地级市code
	* @param userId 用户id
	* @return ProvideCommodity    返回类型 
	* @throws 
	 */
	ProvideCommodityMove selectByCommodityCode(String commodityCode,String cityCode,String userId);
	
	/***
	* @Title: countCommditysClickRateByCode 
	* @Description: 统计商品的点击量
	* @param  commodityCode    商品code
	* @return void    返回类型 
	* @throws 
	 */
	public void countCommditysClickRateByCode(String commodityCode);
	
	
	public Map<String,Object> selectKeyNameCodeSpaceCommodity(String code,String keyName);
	

	/***
	* @Title: selectByCommoditys 
	* @Description: 官网商品排行榜
	* @param  cityCode(城市code)
	* @param  type(查询条件 1；销量排序 2:成交价格排序)
	* @param  page(页数)
	* @param  size(条数)
	* @param @return    设定文件 
	* @return List<ProvideCommodityMove>    返回类型 
	* @throws 
	 */
	public List<ProvideCommodityMove> selectByCommoditys(String cityCode,Integer type,Integer page,Integer size);
}
